/**
 * @file screenrecoder.h
 * @author your name (you@domain.com)
 * @brief 
 * @version 0.1
 * @date 2022-10-20
 * 
 * @copyright Copyright (c) 2022
 * 
 */

// 不再使用这个对象，性能拉跨，但可以作为参考，并不是什么时候都性能优先，如果只是截图功能，参考这里的东西完全可以

#ifndef SRC_SCREENRECODER_H_
#define SRC_SCREENRECODER_H_

#include <QObject>
#include <QQuickWindow>
#include <QThread>
#include <QTimer>
#include <atomic>
#include <memory>

class ScreenRecoder : public QThread {
  Q_OBJECT

 public:
  explicit ScreenRecoder(QObject* parent = nullptr);

 public slots:
  // 保存图像
  void saveImage(std::shared_ptr<QImage> img);
  
  // 启动
  void onStarted();

  void onFinished();

 protected:
  void run() override;

  // 定时器
  void timerEvent(QTimerEvent* event) override;

 private slots:

  // 打印fps
  void print_fps();

 signals:

 private:
  int timer_showfps{0};
  //    std::atomic_bool loop;
  int m_iFpsCount{0};
};

#endif  // SRC_SCREENRECODER_H_
